/**
 * 交♂易相关API
 */

import request from "@/utils/request.js";

export default {
//*************************************************************  购物车  **********************************************//
    /**
     * 获取购物车列表
     * @param show_type 要显示的类型 all：全部 checked：已选中的
     */
    getCarts() {
        return request(`/api/member/trade/carts/all`, {}, "GET");
    },

    /**
     * 获取购物车列表
     * @param show_type 要显示的类型 all：全部 checked：已选中的
     */
    getCartsList(params) {
        return request(`/api/member/trade/carts/list`, params, "GET");
    },

    getCartTotal() {
        return request(`/api/member/trade/carts/total`, {}, "POST");
    },

    /**
     * 获取购物车总数
     * @param show_type 要显示的类型 all：全部 checked：已选中的
     */
    getCartNum() {
        return request(`/api/member/trade/carts/count`, {}, "GET");
    },
    /**
     * 添加货品到购物车
     */
    addToCart(data) {
        return request(`/api/member/trade/carts/add`, data, "POST");
    },
    /**
     * 删除购物车商品
     * @param skuIds
     */
    removeCartSkuItem(params) {
        return request(`/api/member/trade/carts/remove`, params, "POST");
    },
    /**
     * 更新购物车货品选中状态
     */
    updateCartChecked(params) {
        return request(`/api/member/trade/carts/checked`, params, "POST");
    },
    /**
     * 设置全部货品为选中或不选中
     */
    checkCartAll(params) {
        return request(`/api/member/trade/carts/checkedAll`, params, "POST");
    },
    /**
     * 更新购物车商品数量
     */
    updateCartNum(params) {
        return request(`/api/member/trade/carts/editQuantity`, params, "POST");
    },
    // ************************************************   交易  *****************************************************//
    /**
     * 立即购买
     */
    buyNow(data) {
        return request(`/api/member/trade/buyNow`, data, "POST");
    },
    /**
     * 创建交易
     */
    createTrade(params) {
        return request(`/api/member/trade/trade`, params, "POST");
    },
    /**
     * 获取全部配送方式
     */
    shippingMethodList(params) {
        return request(`/api/member/trade/carts/shippingMethodList`, params, "GET");
    },



}


/**
 * 获取购物车可用优惠券数量
 * @param way 购物车购买：CART/立即购买：BUY_NOW/拼团购买：PINTUAN / 积分购买：POINT
 */
export function getCartCouponNum(way) {
    return http.request({
        url: `/trade/carts/coupon/num?way=${way}`,
        method: Method.GET,
        needToken: true,
        loading: false,
    });
}





/**
 * 设置店铺内全部货品选中状态
 * @param storeId
 * @param checked
 */
export function checkStore(storeId, checked) {
    return http.request({
        url: `/trade/carts/store/${storeId}`,
        method: Method.POST,
        needToken: true,
        header: {"content-type": "application/x-www-form-urlencoded"},
        data: {checked},
    });
}

/**
 * 获取结算参数
 */
export function getCheckoutParams(way) {
    return http.request({
        url: "/trade/carts/checked?way=" + way,
        method: Method.GET,
        needToken: true,
    });
}


/**
 * 设置收货地址ID
 * @param addressId
 */
export function setStoreAddressId(storeAddressId, way) {
    return http.request({
        url: `/trade/carts/storeAddress?storeAddressId=${storeAddressId}&way=${way}`,
        method: Method.GET,
        needToken: true,

    });
}








/**
 * 发起支付
 * @param paymentMethod
 * @param paymentClient
 * @param params
 * @returns {*|*}
 */
export function initiatePay(paymentMethod, paymentClient, params) {
    return http.request({
        url: `payment/cashier/pay/${paymentMethod}/${paymentClient}`,
        method: Method.GET,
        needToken: true,
        params,
    });
}





/**
 * 获取当前会员的对于当前商品可使用的优惠券列表
 */
export function getMemberCanUse(data) {
    return http.request({
        url: `/promotion/coupon/canUse`,
        method: Method.GET,
        params: data,
    });
}


/**
 * 获取当前会员的优惠券列表
 */
export function getMemberCouponList(data) {
    return http.request({
        url: `/promotion/coupon/getCoupons`,
        method: Method.GET,
        params: data,
    });
}

/**
 * 使用优惠券

 */
export function useCoupon(params) {
    return http.request({
        url: `/trade/carts/select/coupon`,
        method: Method.GET,
        needToken: true,
        params: params,
    });
}


/**
 * 更换参与活动
 * @param params
 */
export function changeActivity(params) {
    return http.request({
        url: "trade/promotion",
        method: Method.POST,
        needToken: true,
        data: params,

        header: {"content-type": "application/x-www-form-urlencoded"},
    });
}

/**
 * 根据交易单号查询订单列表
 * @param trade_sn
 */
export function reBuy(sn) {
    return http.request({
        url: `trade/carts/rebuy/${sn}`,
        method: Method.POST,
        needToken: true,
    });
}




/**
 * 提交配送方式
 * @param params
 */
export function setShipMethod(params) {
    return http.request({
        url: "/trade/carts/shippingMethod",
        method: Method.PUT,
        needToken: true,
        params,
    });
}
